package com.zeus.core.report;

import com.zeus.common.enums.ZeusAlarmModelEnum;

/**
 * 监控报告
 *
 * @author wangfeixiong126@gmail.com  2021/5/16 22:26
 */
public interface ZeusReportClient {

    /**
     * 获取唯一编码
     *
     * @return 唯一编码
     * @author f1ybear_wang  2022/2/24 5:49 下午
     */
    String uniqueCode();

    /**
     * 增加发生次数
     *
     * @return 是否增加成功
     * @author f1ybear_wang  2022/2/25 12:18 上午
     */
    boolean addCount();

    /**
     * 执行
     * @author f1ybear_wang  2022/2/22 11:19 下午
     */
    void complete();

    /**
     * 是否完成
     * @return 是否完成
     * @author f1ybear_wang  2022/2/22 11:19 下午
     */
    boolean isCompleted();

    boolean hasChanged();

    /**
     * 获取模式
     * 
     * @return 模式
     * @author f1ybear_wang  2022/3/3 3:24 下午
     */
    ZeusAlarmModelEnum getModel();

}
